Mobile Price Classification

1 Intro

Scotty Technologies Inc. (“Scotty”) adalah sebuah perusahaan start-up teknologi yang didirikan pada tahun 2017 di Istanbul, Turkey. Salah satu layanan utama dari Scotty adalah motorcycle ride-sharing atau yang akrab kita ketahui Ojek Online. Menurut informasi yang dilansir dari markets.businessinsider.com, Scotty berencana untuk menjadi super-app pertama di Turkey dengan tekonologi dan model bisnis yang distruptif, serta berencana untuk melanjutkan pertumbuhan yang menjanjikan dan mencapai profitabilitas dalam waktu dekat. Berbicara mengenai pertumbuhan, tentu saja tidak luput dari demand. Oleh karena itu, projek ini ditujukan untuk membuat model analisa dan memprediksi demand transaksi per-jam pada layanan motorcycle ride-sharing di Scotty. Dalam proses pembuatan model ini, kita menggunakan data transaksi Scotty dari 2017-10-01 sampai 2017-12-02.

2 Data Preparation

2.1 Read Data

5 Top Line Data


5 Bottom Line Data



2.2 Variable Description

Variable Description
id Transaction id
trip_id Trip id
driver_id Driver id
rider_id Rider id
start_time Transaction Time
src_lat Request source latitude
src_lon Request source longitude
src_area Request source area
src_sub_area Request source sub-area
dest_lat Requested destination latitude
dest_lon Requested destination longitude
dest_area Requested destination area
dest_sub_area Requested destination sub-area
distance Trip distance (in KM)
status Trip status (all status considered as a demand)
confirmed_time_sec Time different from request to confirmed (in seconds)


2.3 Missing & Duplicate Value?

Missing Value Jika dilihat terdapat missing value pada variabel trip_id dan driver_id, namun tidak menjadi masalah karena pada case ini kita butuh data waktu dan demand.

#>                 id            trip_id          driver_id           rider_id 
#>                  0               4676               4676                  0 
#>         start_time            src_lat            src_lon           src_area 
#>                  0                  0                  0                  0 
#>       src_sub_area           dest_lat           dest_lon          dest_area 
#>                  0                  0                  0                  0 
#>      dest_sub_area           distance             status confirmed_time_sec 
#>                  0                  0                  0                  0


Duplicate Value Dataset ini tidak memiliki data transaksi yang duplikat, sehingga bisa kita lanjutkan ke tahap pre-processing.



3 Data Pre-processing

3.1 Data Structure

#> Observations: 90,113
#> Variables: 16
#> $ id                 <fct> 59d005e1ffcfa261708ce9cd, 59d0066affcfa261708ceb...
#> $ trip_id            <fct> 59d005e9cb564761a8fe5d3e, NA, 59d006c131e39c6189...
#> $ driver_id          <fct> 59a892c5568be44b2734f276, NA, 599dc0dfa5b4fd5471...
#> $ rider_id           <fct> 59ad2d6efba75a581666b506, 59cd704bcf482f6ce2fadf...
#> $ start_time         <fct> 2017-10-01T00:00:17Z, 2017-10-01T00:02:34Z, 2017...
#> $ src_lat            <dbl> 41.07047, 41.07487, 41.04995, 41.05287, 41.06760...
#> $ src_lon            <dbl> 29.01945, 28.99528, 29.03107, 28.99522, 28.98827...
#> $ src_area           <fct> sxk9, sxk9, sxk9, sxk9, sxk9, sxk9, sxk9, sxk9, ...
#> $ src_sub_area       <fct> sxk9s, sxk9e, sxk9s, sxk9e, sxk9e, sxk9s, sxk9s,...
#> $ dest_lat           <dbl> 41.11716, 41.08351, 41.04495, 41.08140, 41.02125...
#> $ dest_lon           <dbl> 29.03650, 29.00228, 28.98192, 28.98197, 29.11316...
#> $ dest_area          <fct> sxk9, sxk9, sxk9, sxk9, sxk9, sxk9, sxk9, sxk9, ...
#> $ dest_sub_area      <fct> sxk9u, sxk9e, sxk9e, sxk9e, sxk9q, sxk9e, sxk9e,...
#> $ distance           <dbl> 5.379250, 1.126098, 4.169492, 3.358296, 11.69357...
#> $ status             <fct> confirmed, nodrivers, confirmed, confirmed, nodr...
#> $ confirmed_time_sec <int> 8, 0, 32, 65, 0, 27, 32, 30, 0, 24, 9, 0, 118, 1...

Dataset yang dimiliki terdiri dari 90.133 observasi dan 16 variabel. Jika dilihat dari struktur datanya, beberapa variabel memiliki tipe data yang belum sesuai. Namun, karena projek ini bertujuan untuk melakukan time-series forecasting terhadap demand per-jam pada layanan motorcycle ride-sharing di Scotty, maka data yang kita perlukan adalah waktu transaksi per-jam dan demand pada setiap src_sub_area. Maka dari Berikut prosesnya:

3.2 Missing Series Datetime Value

Dalam melakukan analisa dan prediksi time series maka seluruh data waktu harus lengkap secara sekuensial. Jam opearasional Scotty yaitu 24jam/hari, sehingga kita harus memastikan seluruh data jam sudah lengkap secara sekuensial dari rentang tanggal minimum hingga tanggal maximum.

Berikut ini visualisasi dataset denagan data waktu yang lengkap dan sekuensial. Titik/Poin berwarna merah, hijau dan biru menandakan data pada jam tersebut tidak ada dan mari kita asumsikan bahwa pada jam tersebut memang tidak terdapat transaksi, sehingga jumlah demand = 0.

3.3 Data Summary

#>  src_sub_area    datetime                       demand      
#>  sxk97:1512   Min.   :2017-10-01 00:00:00   Min.   :  0.00  
#>  sxk9e:1512   1st Qu.:2017-10-16 17:45:00   1st Qu.:  5.00  
#>  sxk9s:1512   Median :2017-11-01 11:30:00   Median : 15.00  
#>               Mean   :2017-11-01 11:30:00   Mean   : 19.87  
#>               3rd Qu.:2017-11-17 05:15:00   3rd Qu.: 27.00  
#>               Max.   :2017-12-02 23:00:00   Max.   :217.00

Informasi di atas merupakan summary keseluruhan data yang kita miliki. Dapat diketahui bahwa dataset ini merupakan data transaksi dari 3 sub area yaitu sxk97, sxk9e dan sxk9s yang terjadi dari 2017-10-01 00:00 sampai 2017-12-02 23:00 dengan jumlah minimum 0 demand dan jumlah maximum 217 demand. Demand 0 dapat diasumsikan bahwa pada waktu tertentu memang tidak terdapat transaksi.